AWK এ কন্ডিশনাল স্টেটমেন্টস ব্যবহার করে শর্ত অনুযায়ী কার্যক্রম সম্পাদন করা হয়। এর মাধ্যমে ব্যবহারকারী বিভিন্ন শর্তের ভিত্তিতে কোডের নির্দিষ্ট অংশ কার্যকর করতে পারেন। AWK এ প্রধান কন্ডিশনাল স্টেটমেন্ট হলো if
, else if
, এবং else
।
if
স্টেটমেন্টif
স্টেটমেন্টটি একটি শর্ত পরীক্ষা করে এবং যদি সেই শর্ত সত্য হয় তবে একটি নির্দিষ্ট অ্যাকশন সম্পন্ন করে।
if (condition) {
action;
}
awk '{ if ($1 > 50) print $1 " is greater than 50" }' filename.txt
এখানে, যদি প্রথম কলামের মান 50 এর বেশি হয়, তাহলে সেই মানটি এবং একটি বার্তা প্রিন্ট হবে।
else if
স্টেটমেন্টelse if
স্টেটমেন্টটি একটি শর্ত পরীক্ষা করার পর যদি প্রথম শর্ত মিথ্যা হয় তবে একটি দ্বিতীয় শর্ত পরীক্ষা করে।
if (condition1) {
action1;
} else if (condition2) {
action2;
}
awk '{
if ($1 > 50)
print $1 " is greater than 50";
else if ($1 == 50)
print $1 " is equal to 50";
else
print $1 " is less than 50";
}' filename.txt
এখানে, প্রথম কলামের মান অনুযায়ী তিনটি ভিন্ন অ্যাকশন হতে পারে।
else
স্টেটমেন্টelse
স্টেটমেন্টটি if
বা else if
এর পরে ব্যবহৃত হয় এবং যদি পূর্ববর্তী শর্তগুলি মিথ্যা হয় তবে একটি ডিফল্ট অ্যাকশন সম্পন্ন করে।
if (condition) {
action1;
} else {
action2;
}
awk '{
if ($2 < 100)
print $1 " is less than 100";
else
print $1 " is 100 or more";
}' filename.txt
এখানে, দ্বিতীয় কলামের মান 100 এর কম হলে একটি বার্তা প্রিন্ট হবে, অন্যথায় অন্য একটি বার্তা প্রিন্ট হবে।
AWK এ কন্ডিশনাল স্টেটমেন্টসকে একের ভেতর একNested করা যায়। এটি একটি কন্ডিশনাল ব্লকের মধ্যে অন্য কন্ডিশনাল ব্লক তৈরি করার অনুমতি দেয়।
awk '{
if ($1 > 50) {
if ($2 < 30)
print $1 " is greater than 50 and $2 is less than 30";
else
print $1 " is greater than 50 and $2 is 30 or more";
} else {
print $1 " is 50 or less";
}
}' filename.txt
AWK এ কন্ডিশনাল স্টেটমেন্টস ডেটা প্রসেসিংয়ে গুরুত্বপূর্ণ ভূমিকা পালন করে। এটি ব্যবহারকারীদের শর্ত অনুযায়ী বিভিন্ন কার্যক্রম সম্পাদন করার ক্ষমতা প্রদান করে, যা ডেটা বিশ্লেষণ এবং পরিচালনার সময় খুবই কার্যকর। AWK এর কন্ডিশনাল স্টেটমেন্টগুলি লজিক্যাল সিদ্ধান্ত গ্রহণে সহায়ক এবং এটি স্ক্রিপ্টের জটিলতা বাড়ায়।
if
, else if
, এবং else
হল শর্তাধীন বিবৃতির অংশ, যা প্রোগ্রামিং ভাষায় শর্ত অনুযায়ী কোড কার্যকর করার জন্য ব্যবহৃত হয়। এই কাঠামোটি সিদ্ধান্ত গ্রহণ প্রক্রিয়ার উপর ভিত্তি করে কাজ করে, যা একটি নির্দিষ্ট শর্ত পূরণ হলে বা না হলে বিভিন্ন কোড ব্লক কার্যকর করতে সহায়তা করে। নিচে এই শর্তগুলির ব্যবহার এবং উদাহরণগুলি আলোচনা করা হলো।
if
স্টেটমেন্ট ব্যবহার করে আপনি একটি নির্দিষ্ট শর্ত যাচাই করেন। যদি শর্তটি সত্য (true) হয়, তবে if
ব্লকের কোড কার্যকর হয়।
if condition:
# কোড ব্লক
age = 18
if age >= 18:
print("You are eligible to vote.")
এখানে, যদি age
18 অথবা তার বেশি হয়, তাহলে "You are eligible to vote." মুদ্রিত হবে।
else if
(বা elif
Python-এ) ব্যবহৃত হয় যখন আপনার একাধিক শর্ত পরীক্ষা করতে হয়। যদি প্রথম if
শর্ত মিথ্যা হয়, তবে else if
শর্তটি পরীক্ষা করা হয়।
if condition1:
# কোড ব্লক 1
elif condition2:
# কোড ব্লক 2
marks = 75
if marks >= 80:
print("Grade: A")
elif marks >= 60:
print("Grade: B")
else:
print("Grade: C")
এখানে, যদি marks
80 অথবা তার বেশি হয়, "Grade: A" দেখানো হবে; যদি 60 অথবা তার বেশি হয়, "Grade: B" দেখানো হবে; অন্যথায় "Grade: C" দেখানো হবে।
else
স্টেটমেন্ট ব্যবহার করে আপনি একটি ডিফল্ট কোড ব্লক নির্ধারণ করেন যা if
এবং else if
শর্তগুলি মিথ্যা হলে কার্যকর হয়।
if condition1:
# কোড ব্লক 1
elif condition2:
# কোড ব্লক 2
else:
# কোড ব্লক 3
temperature = 30
if temperature > 30:
print("It's hot outside.")
elif temperature < 20:
print("It's cold outside.")
else:
print("The weather is moderate.")
এখানে, যদি temperature
30 এর বেশি হয়, "It's hot outside." দেখানো হবে; যদি 20 এর কম হয়, "It's cold outside." দেখানো হবে; অন্যথায় "The weather is moderate." দেখানো হবে।
if
, else if
, এবং else
স্টেটমেন্টগুলি শর্তাধীন সিদ্ধান্ত গ্রহণের জন্য ব্যবহৃত হয়। if
শর্ত যাচাই করে এবং যদি তা সত্য হয়, কোড ব্লক কার্যকর হয়; else if
পরবর্তী শর্তগুলি পরীক্ষা করে এবং else
একটি ডিফল্ট কোড ব্লক হিসাবে কাজ করে। এই শর্তগুলি ব্যবহার করে প্রোগ্রামাররা লজিক্যাল সিদ্ধান্ত নিতে পারেন এবং কোডের বিভিন্ন প্রবাহ তৈরি করতে পারেন।
Ternary operator হল একটি সংক্ষিপ্ত শর্তমূলক অপারেটর, যা সাধারণত তিনটি অংশ নিয়ে গঠিত। এটি একটি সংক্ষিপ্তভাবে শর্ত পরীক্ষা করতে ব্যবহৃত হয় এবং এটি সাধারণত ?
এবং :
চিহ্ন দিয়ে রচনা করা হয়। Ternary operator কে AWK এবং অন্যান্য প্রোগ্রামিং ভাষায় এক লাইনে একটি শর্ত প্রয়োগ করতে ব্যবহার করা যায়।
Ternary operator এর সাধারণ সিনট্যাক্স নিম্নরূপ:
condition ? value_if_true : value_if_false
AWK তে Ternary operator ব্যবহার করে শর্ত প্রয়োগের কিছু উদাহরণ নিচে উল্লেখ করা হলো:
awk '{ result = ($1 >= 50) ? "Pass" : "Fail"; print $1, result; }' scores.txt
এখানে, $1
কলামের মান যদি 50 এর সমান বা বেশি হয়, তবে "Pass" প্রিন্ট হবে, অন্যথায় "Fail" প্রিন্ট হবে।
awk '{ grade = ($2 >= 90) ? "A" : ($2 >= 80) ? "B" : ($2 >= 70) ? "C" : "D"; print $1, grade; }' grades.txt
এখানে, $2
কলামের মানের উপর ভিত্তি করে গ্রেড নির্ধারণ করা হয়েছে। এটি একাধিক শর্ত পরীক্ষা করে A, B, C, বা D নির্ধারণ করে।
awk '{ status = ($3 == "active") ? "Active User" : "Inactive User"; print $1, status; }' users.txt
এখানে, $3
কলামের মান যদি "active" হয়, তবে "Active User" প্রিন্ট হবে, অন্যথায় "Inactive User" প্রিন্ট হবে।
Ternary operator একটি কার্যকরী এবং সংক্ষিপ্ত উপায়ে শর্ত প্রয়োগের জন্য ব্যবহৃত হয়। এটি সাধারণত এক লাইনে শর্ত পরীক্ষা করে এবং ফলাফল ফেরত দেয়, যা কোড লেখার সময় সঙ্কলনের সাপেক্ষে সুবিধা প্রদান করে। AWK তে Ternary operator ব্যবহার করে ব্যবহারকারীরা সহজেই বিভিন্ন শর্ত এবং ফলাফল পরিচালনা করতে পারেন, যা ডেটা প্রক্রিয়াকরণকে আরও কার্যকর করে।
AWK একটি শক্তিশালী টেক্সট প্রসেসিং ভাষা, তবে এটি সরাসরি switch
বা case
স্টেটমেন্টের সমর্থন করে না, যা কিছু অন্যান্য প্রোগ্রামিং ভাষায় দেখা যায়। তবে, AWK এ একটি কার্যকর উপায়ে if-else
স্টেটমেন্ট ব্যবহার করে স্যুইচ কেসের মতো আচরণ তৈরি করা সম্ভব। নিচে AWK এ কিভাবে switch case
স্টাইলের লজিক তৈরি করা যায় এবং তার ব্যবহার উল্লেখ করা হলো।
Switch
স্টেটমেন্ট সাধারণত একটি পরিবর্তনশীলের মান পরীক্ষা করে এবং সেই অনুযায়ী বিভিন্ন অ্যাকশন সম্পাদন করে। এটি সাধারণত এইভাবে কাজ করে:
switch (variable) {
case value1:
// code to be executed if variable equals value1
break;
case value2:
// code to be executed if variable equals value2
break;
default:
// code to be executed if variable doesn't match any case
}
AWK এ switch
স্টেটমেন্টের বিকল্প হিসাবে if-else
স্টেটমেন্ট ব্যবহার করা যেতে পারে। উদাহরণস্বরূপ:
awk '{
if ($1 == "A") {
print "Case A"
} else if ($1 == "B") {
print "Case B"
} else if ($1 == "C") {
print "Case C"
} else {
print "Default case"
}
}' filename.txt
এখানে, প্রথম কলামের মান অনুযায়ী বিভিন্ন কেস প্রিন্ট হবে।
AWK এ switch
কেসের মতো আচরণ তৈরি করতে, আমরা if-else
স্টেটমেন্টগুলি ব্যবহার করব। নিচে একটি উদাহরণ দেওয়া হলো:
awk '{
switch_value = $1 # প্রথম কলামের মান গ্রহণ
if (switch_value == "A") {
print "You chose A"
} else if (switch_value == "B") {
print "You chose B"
} else if (switch_value == "C") {
print "You chose C"
} else {
print "Invalid choice"
}
}' filename.txt
এখানে, $1
(প্রথম কলাম) অনুযায়ী আমরা বিভিন্ন ফলাফল প্রিন্ট করছি।
AWK এ একটি ফাংশন ব্যবহার করে স্যুইচ কেসের মতো আচরণ করা যেতে পারে:
awk 'function switch_case(switch_value) {
if (switch_value == "A") {
return "You chose A"
} else if (switch_value == "B") {
return "You chose B"
} else if (switch_value == "C") {
return "You chose C"
} else {
return "Invalid choice"
}
}
{
print switch_case($1) # প্রথম কলামের মান অনুযায়ী ফলাফল প্রিন্ট
}' filename.txt
এখানে, একটি ফাংশন switch_case
তৈরি করা হয়েছে যা প্রথম কলামের মান অনুযায়ী ফলাফল প্রদান করে।
AWK সরাসরি switch case
স্টেটমেন্ট সমর্থন না করলেও if-else
স্টেটমেন্ট ব্যবহার করে স্যুইচ কেসের মতো আচরণ তৈরি করা সম্ভব। AWK এর এই ক্ষমতা ডেটা বিশ্লেষণের কাজকে আরও সহজ এবং কার্যকর করে, বিশেষ করে যখন বিভিন্ন শর্ত অনুযায়ী ডেটার ওপর বিভিন্ন অ্যাকশন প্রয়োগ করতে হয়। AWK এর মাধ্যমে ডেটা প্রসেসিং এবং বিশ্লেষণে কাস্টম লজিক যোগ করতে, এই ধরনের পদ্ধতি খুবই উপকারী।
AWK তে শর্ত ভিত্তিক ডেটা প্রসেসিং একটি গুরুত্বপূর্ণ বৈশিষ্ট্য, যা ব্যবহারকারীদের ডেটা বিশ্লেষণের সময় নির্দিষ্ট শর্তের উপর ভিত্তি করে কার্যকলাপ পরিচালনা করতে সক্ষম করে। এখানে কিছু উদাহরণ দেওয়া হলো যাতে দেখা যায় কীভাবে AWK তে শর্ত ভিত্তিক ডেটা প্রসেসিং করা যায়।
ধরা যাক, একটি টেক্সট ফাইল data.txt
আছে যার সামগ্রী নিচে দেখানো হয়েছে:
Alice 30
Bob 25
Charlie 35
David 28
এখন আমরা এমন লাইনে আউটপুট করতে চাই যেখানে দ্বিতীয় কলামের মান 30 এর বেশি:
awk '$2 > 30' data.txt
ফলাফল:
Charlie 35
এখানে $2 > 30
শর্তটি ব্যবহার করে আমরা দ্বিতীয় কলামের মান 30 এর বেশি হলে লাইনের আউটপুট পাচ্ছি।
এখন আমরা শুধুমাত্র 30 এর বেশি বয়সের নাম বের করতে চাই এবং তাদের বয়সের সাথে আউটপুট করতে চাই:
awk '$2 > 30 {print $1, $2}' data.txt
ফলাফল:
Charlie 35
এখানে $2 > 30
শর্তটি সঠিক হলে, আমরা $1
(নাম) এবং $2
(বয়স) প্রিন্ট করছি।
ধরা যাক, আমরা চাই যে মোট বয়স গণনা করি যাদের বয়স 30 এর বেশি:
awk '$2 > 30 {sum += $2} END {print "Total age:", sum}' data.txt
ফলাফল:
Total age: 35
এখানে, $2 > 30
শর্তটি পূরণ হলে, $2
এর মান sum
এ যোগ হচ্ছে এবং শেষে মোট বয়স প্রিন্ট হচ্ছে।
ধরা যাক, আমরা চাই সমস্ত 30 এর নিচের বয়সের মানুষের নাম এবং বয়স প্রিন্ট করতে, এবং আউটপুট ফরম্যাট করতে:
awk '$2 < 30 {print "Name: " $1 ", Age: " $2}' data.txt
ফলাফল:
Name: Bob, Age: 25
Name: David, Age: 28
এখানে, $2 < 30
শর্তের ভিত্তিতে নাম এবং বয়স ফরম্যাট করে প্রিন্ট করা হচ্ছে।
ধরা যাক, আমরা টেক্সট ফাইলে "Alice" নামের মানুষের তথ্য বের করতে চাই:
awk '$1 == "Alice"' data.txt
ফলাফল:
Alice 30
এখানে $1 == "Alice"
শর্তটি ব্যবহার করে আমরা "Alice" এর তথ্য পেয়েছি।
AWK তে শর্ত ভিত্তিক ডেটা প্রসেসিং একটি শক্তিশালী বৈশিষ্ট্য যা ব্যবহারকারীদের নির্দিষ্ট শর্তের ভিত্তিতে ডেটা বিশ্লেষণ ও প্রক্রিয়াকরণ করতে সক্ষম করে। বিভিন্ন শর্ত ব্যবহার করে বিভিন্নভাবে ডেটা ফিল্টার, গণনা এবং আউটপুট করতে পারা যায়। এই উদাহরণগুলো AWK তে শর্ত ভিত্তিক ডেটা প্রসেসিংয়ের কার্যকারিতা ও নমনীয়তা প্রদর্শন করে।
common.read_more